#include <iostream>
using namespace std;
const int N = 100010;
int n;
int stk[N], tt;  //stk存储单调栈
int main()
{
    cin >> n;  //输入n个数
    for (int i = 0; i < n; i++)
    {
        int x;
        cin >> x;  //输入一个数
        while (tt && stk[tt] >= x)  //在单调栈中向前找最小数
            tt--;
        if (tt)  //有最小数就输出，没有则-1
            cout << stk[tt] << ' ';
        else
            cout << -1 << ' ';
        stk[++tt] = x;  //该数存入单调栈
    }
}